import Vue from 'vue'
import App from './App.vue'
import Vuex from 'vuex'  // 引入vuex包
Vue.use(Vuex) // 注册vuex的功能 Vue.use的方法实际调用了vuex中的install方法

const store = new Vuex.Store({
  //实例化vuex的构造参数 stat mutations actions
  state: {
    // 管理数据
    list: [1, 2, 3, 4, 5, 6, 7, 8, 89]
  },
  mutations: {
  },
  actions: {
  },
  getters: {
    // getters函数的第一个参数是 state
    // 必须要有返回值
    token: state => state.user.token,
    name: state => state.setting.name
  },
  modules: {
    user: {
      namespaced: true,
      state: {
        token: '12345'
      },
      mutations: {
        //  这里的state表示的是user的state
        updateToken(state) {
          state.token = 678910
        }
      }
    },
    setting: {
      state: {
        name: 'Vuex实例'
      }
    },
  }

}) //实例一个Vuex

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  store
}).$mount('#app')
